<?php
/*****************************
* PHPwork官方网址： ruanjiesoft.com
* PHPwork应用官方QQ群： 317075601
* PHPwork应用开发者QQ： 1980572700
* 不得使用本软件用于非法用途，不得违反国家法律。
*************************************/

namespace system\api\controller;


// 上传文件管理
class Upload{

	private $app_name;
	private $app_upload_dir;

	function __construct(){
		// 权限验证 此api类需要登录后才可以访问
		if( !(isset($_SESSION['platform']['admin']['admin_id']) && $_SESSION['platform']['admin']['admin_id']!= '')  ){
			exit( json_encode(['code'=>400, 'message'=>'请登录访问！'])  );
		}

		if( !(isset($_REQUEST['app_name']) && $_REQUEST['app_name']!= '')  ){
			exit( json_encode(['code'=>400, 'message'=>'应用模块名称为空！'])  );
		}
		
		$this->app_name = $_REQUEST['app_name'] ;
		
		$this->app_upload_dir = _APP_PATH_ . '/data/uploadfile' ;
		//检查目录是否存在
		if( file_exists( $this->app_upload_dir )==false){
			mkdir( $this->app_upload_dir , 0755, true );
		}
		$this->app_upload_dir .=  '/' .$this->app_name ;
		if(file_exists( $this->app_upload_dir )==false){
			mkdir( $this->app_upload_dir , 0755, true );
		}

	}

	// 上传文件列表 
	function file_list(){  
		$arr = ['code'=>400, 'message'=>'错误']; 

		$file_list_tmp = scandir( $this->app_upload_dir );
		$file_list = [];
        // 比对目录下 . ..
        foreach($file_list_tmp as $k => $v){
            if( $v=='.' || $v=='..' || is_dir( $this->app_upload_dir . '/' . $v)==true){
                unset($file_list_tmp[$k]);
            }else{
				$file_list[] = $file_list_tmp[$k] ;
			}
        }

		$arr['code']= 200;
		$arr['message']= '成功';
		$arr['data']= $file_list ; 
		exit( json_encode($arr) );
	} 

	//文件删除
	function file_delete(){
		$arr = ['code'=>400, 'message'=>'错误']; 
		if( isset($_REQUEST['file']) ){
			$file = $_REQUEST['file'];
			$file= explode(',', $file);

			foreach($file as $vo){
				if(file_exists($this->app_upload_dir . '/' . $vo)){
					unlink( $this->app_upload_dir . '/' . $vo );
				}else{
					echo json_encode($arr);
					exit();
				}
			}
			$arr['code']= 200;
			$arr['message']= '成功';
			
		}
		
		exit( json_encode($arr) );

	}

    // 文件上传
	function file_upload(){
		$arr = ['code'=>400, 'message'=>'错误']; 
			
		if ( isset($_FILES['file']) && is_uploaded_file($_FILES['file']['tmp_name'])) {
			
			$f_ext = strtolower( pathinfo($_FILES['file']['name'],PATHINFO_EXTENSION) );
			$file_no_type = ['php','asp','py','jsp'];	// 不允许上传文件类型
			if( in_array( $f_ext,$file_no_type)==true ){
				$arr['code']= 400;
				$arr['message']= '上传文件类型错误';
				exit( json_encode($arr) );
			}
			
			$f_name = date('YmdHis') . mt_rand(100,999) . '.' . $f_ext ;	//得到扩展名

			if(move_uploaded_file($_FILES['file']['tmp_name'], $this->app_upload_dir . '/' . $f_name ) ){//保存被上传的文件
				$arr['code']= 200;
				$arr['message']= '成功';
				$arr['data']= ['file_name'=> $f_name ];
			}
		
		}
		exit( json_encode($arr) );
	
	}

  
}